Blitz Basic - Nykyaikaista Basicia
Petteri Bamberg

Ennen muinoin, kun A500 oli rautaa, aloittelevien ohjelmoijanalkujen ainoana vaihtoehtona oli tarttua koneen mukana tulleeseen Basic-tulkkiin, joka oli karu ja hidas. Sill� tehtyj� ohjelmia ei voinut edes k��nt�� ajettaviksi, vaan t�h�n tarvittiin erillinen kallis ohjelma. Ajan kuluessa tuli markkinoille AMOS, joka oli l�hinn� pelien tekoon tarkoitettu kieli. Sill� sai jo osaavissa k�siss� n�ytt�v��kin j�lke�, esimerkkin� ZTM:n pelit ja demot, sek� taannoin arvostelemani World of Arch (ks. Saku #29). OS-yst�v�llisi� ohjelmia sill� ei kuitenkaan saanut aikaiseksi, mik� tuotti ylim��r�ist� p��nvaivaa hy�tyohjelmien ohjelmoinnista haikaileville.

Acid Softwarelta kajahtaa

MikroBitti arvosteli v�h�isill� Amiga-sivuillaan Blitz Basicin version 2.0. Arvostelussa valiteltiin manuaalin virheist� ja satunnaisista kaatuilusta. T�ss� vaiheessa min� olin jo lopen kyll�stynyt tappelemaan rupuisen AmigaBasicini kanssa, joka ei edes toiminut kunnolla A1200:ssani, joten p��tin hankkia Blitzin. Ilmoitus Keltaiseen P�rssiin ja odottelemaan. Parin p�iv�n p��st� soi puhelin, ja Blitz Basic v2.1 vaihtoi omistajaansa viidell� kympill�. Paketista paljastui sininen pakkaus, joka piti sis�ll��n kolme levykett�, rekister�intikortin sek� kovakantisen manuaalin. Ohjekirjan selailu paljasti Blitzin toimivan jokaisessa Amigassa, jossa olisi v�hint��n 1 Mt muistia. Hyv�, hyv�. Sitten asennukseen.

Levykkeelt� ei l�ytynyt mink��nlaista asennusohjelmaa, joten levyke pit�� k�sin kopioida kiintolevylle, mink� lis�ksi tarvitaan pari hassua assignia, siin� kaikki. Extras-levykkeell� oli lha-pakattuja apuohjelmia, joita tosin en ole viel� toistaiseksi tarvinnut. Examples-levykkeell� olevista esimerkkiohjelmista on arvokasta apua aloittelijoille, joten se kannattaa my�s asentaa.

Ohjelmoimaan!

Blitzill� ohjelmointi poikkeaa hieman AmigaBasicista. Esimerkiksi Print-lauseen sijasta t�ytyy k�ytt�� NPrint:i�, sill� pelkk� Print ei suorita rivinvaihtoa. My�s tekstin vieritys ikkunan alareunan tullessa vastaan ei ole automaattista kuten AmigaBasicissa, vaan se t�ytyy itse hoitaa WPrintScroll-k�skyll�.

Grafiikkakomennotkaan eiv�t ole niin yksiselitteisi�. Suoraan ikkunaan voi piirrell� viivoja sun muita yksinkertaisia elementtej� WLine- ja WBox-tyylisill� lauseilla, mutta huomattavasti k�tev�mp�� on k�ytt�� ns. bitmapeja. Bitmap on Chip-muistista varattu alue, jota voi grafiikkakomennoilla mielin m��rin muokata. Bitmapit ovat k�tevi�, sill� niiden tiedot voidaan ladata tavallisesta IFF-kuvasta. Bitmapin voi my�s j�rjest�� niin, ettei se automaattisesti tulostu ruutuun jokaisen piirtokomennon j�lkeen, vaan vasta niin komennettaessa.

Liikuteltavat objektit voivat olla my�s tavallisia IFF-brusheja, mutta paljon k�yt�nn�llisemp�� on k�ytt�� Blitzin omia shape-tiedostoja. Shape-tiedostoihin ei ulkopuolinen p��se niink��n helposti k�siksi, ne ovat nopeampia ladata ja niit� voi tallentaa monen kappaleen ryhmiss�. Lis�ksi Blitz viel� pakkaa kuvainformaation, joten levytilaakin s��styy.

��niksi kelpaavat kaikki IFF-samplet, tosin koko ei saa olla yli 64 kilotavua. Musiikkimoduleiksi luetaan MOD- ja MED-formaatit, tosin MEDien k�sittelyyn on paljon monipuolisempia k�skyj�, sill� MODeja voi ainoastaan soittaa ja pys�ytt��.

K�ytt�j�rjestelm�n peruselementit eli ikkunat, valikot ja painikkeet hoituvat k�den k��nteess�, tosin valikoiden ja painikkeiden tiedot t�ytyy m��ritell� ohjelman alussa.

Blitz Basic toimii kahdessa tilassa. Amiga-tila on moniajavia ohjelmia varten. Amiga-tilassa koodatut ohjelmat toimivat mit� suurimmalla varmuudella miltei jokaisessa kokoonpanossa. Kun Amigasta halutaan tirist�� viimeisimm�tkin mehut pihalle, voi k�ytt�� Blitz-tilaa. Se ottaa koko koneen hallintaan ja sulkee moniajon. T�m� antaa lis�� nopeutta yhteensopivuuden kustannuksella.

Blitz Basic toimii tarvittaessa my�s puhtaana assemblerina, joten kielt� taitavat voivat kivuttomasti ujuttaa puhdasta konekielt� koodin sekaan. My�s monipuolisia k�ytt�j�rjestelm�kirjastojen komentoja voi k�ytt�� normaalien komentojen tapaan, kunhan vain lis�� komennon j�lkeen alaviivan (esim. WBenchToFront_).

Bugeja, onko niit�?

Blitz Basic ei ole varsinaisesti mik��n tulkki, sill� ohjelma k��nnet��n konekieleksi aina ennen ajoa. T�m� vain k�y niin nopeasti, ett� k�ytt�j�lle j�� vaikutelma perinteisest� rivin rivilt� k��nt�v�st� Basic-tulkista. Blitzill� tehdyt ohjelmat voidaan k��nt�� ajettaviksi, jolloin ne ovat 100% assembleria ja siten eritt�in tehokkaita. Itse k��nn�sprosessi on nopea ja sujuu ilman k�ytt�j�n apua.

Ohjelmat ovat nopeita, varsinkin jos tajuaa ajon ajaksi kytke� debuggerin (virheenetsinn�st� huolehtiva ohjelma) pois p��lt� (t�m� tosin edellytt�� melko idioottivarmaa koodia, sill� pienikin moka kaataa koneen). Debuggeri on varsin metka kapistus. Se ei nimitt�in aina suostu sulkeutumaan, vaan kaatuu niille sijoilleen. Editori ei moisesta h�tk�hd�, mutta mik�li ohjelman yritt�� ajaa uudelleen, on seurauksena raaka crash.

Samanlaista satunnaista sekoilua, josta MikroBitti moitti v2.0:aa, ei ilmennyt v2.1:ss�. Ketjun heikoin lenkki on kuitenkin bugittava debuggeri. Kannattaa ottaa tavaksi tallentaa ohjelma ennen ajoa tai v�hint��n silloin, kun on tehnyt v�h�nkin suuremman muutoksen ohjelmaan. Ohjekirja loistaa painovirheiss��n, tosin v�hemm�n kuin v2.0. My�s OS-ohjelmoijan kannalta oleelliset asiat, kuten Ctrl+C-break ja n�ytt�tilakehotteet, on autuaasti unohdettu. Muuten kirja ajaa asiansa.

Loppurutina

Loppujen lopuksi Blitz Basic on kelpo kieli, jolla hoituvat niin hy�ty- kuin peliohjelmatkin. Sit� on k�ytetty useiden kaupallisten pelien ohjelmoimiseen sen tehokkuuden ja helppok�ytt�isyyden takia, esim. Gloomin editorit ovat Blitzi�, kun taas Worms on jopa kokonaan Blitzill� tehty. Blitz Basic pit�isi jakaa jokaisen uuden Amiga-paketin mukana takavuosien AmigaBasicin tapaan, niin hyv� se on.

Suomessa Blitz Basicia myy ainakin Gentle Eye Ky (http://www.ge.vip.fi, ge@vip.fi, (03) 363 0048). Syyskuun lopulla hinnastossa Blitz Basic Ultimate CD maksoi 195 mk.


Blitz Basic
Tekij�:Mark Sibly
Julkaisija:Acid Software
Aminet (v2.11 demo, executablen luominen estetty, 637 kt): http://ftp.sunet.se/pub/aminet/dev/basic/BlitzBasic_211.lha